The invention relates generally to the field of digital computer systems and more particularly to arrangements for notifying programs of the occurrence of events which occur in connection with various objects such systems. The invention particularly provides an arrangement for use in a digital computer system which simplifies providing notification of events in connection with the various objects and other elements of a graphical user interface (xe2x80x9cGUIxe2x80x9d) which normally would be displayed on a video display device, to programs which control processing by the digital computer systems in connection therewith.
The development of inexpensive and high-powered computer systems, such as personal computers, computer workstations and the like has led to an increase in the availability of sophisticated computer technology to large numbers of people, Generally, a personal computer, workstation or the like includes processor, a video display through which the computer can display information to an operator, and operator input devices such as a keyboard, a pointing devices such as a mouse or the like, which the operator can use to input information to the computer. The development of graphical user interfaces (GUI""s) has made computers easier for many to use. In a graphical user interface, the computer displays information to an operator in graphical form on a video display, and allows the operator to manipulate the displayed graphical information to control the computer by manipulating the pointing device.
In a computer employing a graphical user interface, information is displayed in the form of objects, including icons, windows and window components, boxes, and the like. Other objects which may be used in a graphical user interface include, for example, window components such as a title bar, menu, scroll bars and elements thereof, various kinds of boxes such as dialog boxes, check boxes, message boxes and the like, and various types of push buttons which may be actuated by the operator to enable certain operations to occur. Generally, when an event occurs in connection with a graphical user interface object, one or more application programs are provided with a notification of the event, after which it or they (that is, the application program(s)) can perform predetermined operations. Generally, when an event occurs in connection with an object used in the graphical user interface, a notification of the event is entered into an event queue maintained by the digital computer system""s operating system. The event notifications are generally listed in the event queue in the order in which the operator performs events in connection with the various objects. An application program which needs to be notified of events which occur in connection with an object registers a xe2x80x9clistenerxe2x80x9d for the object, which serve to check the event queue to determine when the event queue includes an event notification for that object. An application program will typically need to register a listener for each object for which it requires notification. When a listener determines that the event queue includes a notification for an event in connection with its object, it (that is, the listener) will, in turn provide a notification to the application program of the event.
Typically, an application program will need to be notified of events which occur in connection with only a relatively small number of objects used in a graphical user interface, generally only the objects which comprise its window and objects which it has requested the operating system to generate. In such a case, the application program can easily determine when it needs to register a listener for the respective objects. However, some types of programs may need to receive notifications of events which occur in connection with all, or at least a large number, of the objects comprising the graphical user interface. For example, so-called xe2x80x9cassistive technologyxe2x80x9d programs, which typically are used to assist operators who have various kinds of disabilities to use computers, may need to receive notifications of events so that they can perform an operation which can, for example, provide a non-visual indication of the event. Thus, in connection with an assistive technology program which is used in connection with a graphical user interface may, when an event occurs in connection with an object in the graphical user interface which would typically be displayed by the video display device to provide a visual notification of the event to the operator, also enable speakers to generate a sound when the event occurs, thereby to provide an audible notification of the event to the operator. Thus, the assistive technology program can assist a sight-impaired person to use the computer. However, to accomplish that, the assistive technology program will need to receive notifications of events which occur in connection with many, if not all of the objects in the graphical user interface, most of which it (that is, the assistive technology program) will not have enabled the digital computer system""s operating system to generate. In addition, the assistive technology program will need to receive notification of events in connection with objects, at least some of which will likely have been instantiated after the assistive technology program was initialized, which would require the assistive technology program not only to identify the objects comprising the graphical user interface which exist when it is initialized for which it will need to register listeners, but also to continuously monitor the subsequent instantiation of such objects by the operating system so that it can determine whether the register listeners therefor. These requirements can complicate development of assistive technology programs.
The invention provides a new and improved arrangement for use in a digital computer system which simplifies providing notification of events in connection with the various objects and other elements of a graphical user interface (xe2x80x9cGUIxe2x80x9d) which normally would be displayed on a video display device, to programs which control processing by the digital computer systems in connection therewith.
In brief summary, the invention provides an event notification subsystem for use in connection with a digital computer system provides notification of the occurrence of events which occur in connection with objects in the digital computer system to application programs. The event notification subsystem includes an event monitor that establishes respective listeners associated with the respective objects that determines when events occur in connection therewith. The event monitor, in response to receipt of notification from a listener that an object has notified it that an event has occurred in connection therewith, in turn notifies ones of the application programs which are registered therewith which have indicated to the event monitor that they wish to receive notifications for the respective object.